home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Mac Power 1997 December
/
MACPOWER-1997-12.ISO.7z
/
MACPOWER-1997-12.ISO
/
AMUG
/
PROGRAMMING
/
Raven 1.2.sit
/
Raven 1.2
/
Source
/
Foundation
/
OS
/
ZResUtils.h
< prev
next >
Wrap
Text File
|
1997-06-21
|
4KB
|
148 lines
/*
* File: ZResUtils.h
* Summary: Resource manager utilities.
* Written by: Jesse Jones
*
* Copyright ゥ 1996-1997 Jesse Jones.
* For conditions of distribution and use, see copyright notice in ZTypes.h
*
* Change History (most recent first):
*
* <2> 4/12/97 JDJ Added GetResourceInfo. Added GetRefNum to TOpenResFile.
* <1> 2/03/96 JDJ Created
*/
#pragma once
#include <Files.h>
#include <ZConstants.h>
#include <ZTypes.h>
//-----------------------------------
// Types
//
struct SResourceInfo {
ResType type;
ResID id;
string name;
SResourceInfo() {type = '????'; id = 0;}
SResourceInfo(ResType tp, ResID i, const string& nm) {type = tp; id = i; name = nm;}
};
// ===================================================================================
// Reading
// ===================================================================================
void ReadResource(ResType type, ResID id, void* buffer, ulong bytes);
void Read1Resource(ResType type, ResID id, void* buffer, ulong bytes);
void ReadResource(ResType type, const string& name, void* buffer, ulong bytes);
void Read1Resource(ResType type, const string& name, void* buffer, ulong bytes);
// ===================================================================================
// Writing
// ===================================================================================
void WriteResource(ResType type, ResID id, Handle data, bool purgeable = kNonPurgeable);
// Adds a new resource or overwrites an existing one.
void WriteResource(ResType type, ResID id, const void* buffer, ulong bytes, bool purgeable = kNonPurgeable);
void WriteResource(ResType type, const string& name, Handle data, bool purgeable = kNonPurgeable);
void WriteResource(ResType type, const string& name, const void* buffer, ulong bytes, bool purgeable = kNonPurgeable);
// ===================================================================================
// Deleting
// ===================================================================================
void Delete1Resource(ResType type);
void DeleteResource(ResType type);
void DeleteResource(ResType type, ResID id);
void DeleteResource(ResType type, const string& name);
// ===================================================================================
// Misc
// ===================================================================================
bool Has1Resource(ResType type, ResID id);
bool HasResource(ResType type, ResID id);
bool Has1Resource(ResType type, const string& name);
bool HasResource(ResType type, const string& name);
void ChangeResourceName(Handle handle, const string& name);
Handle ReleaseIfResource(Handle handle);
SResourceInfo GetResourceInfo(Handle hand);
// ===================================================================================
// class TOpenResFile
// ===================================================================================
class TOpenResFile {
public:
~TOpenResFile();
TOpenResFile(const FSSpec& spec, SignedByte Perm);
// Perm can be fsRdPerm, fsWrPerm, fsRdWrPerm, fsRdWrShPerm.
short GetRefNum() const {return mRefNum;}
private:
short mRefNum;
};
// ===================================================================================
// class TSaveResFile
// ===================================================================================
class TSaveResFile {
public:
~TSaveResFile();
// Restores the ResFile.
TSaveResFile();
// Saves the ResFile.
explicit TSaveResFile(short newResFile);
// Will save the current ResFile and set newResFile as the new current ResFile.
private:
short mSavedResFile;
};
// ===================================================================================
// class TNoResLoad
// ===================================================================================
class TNoResLoad {
public:
~TNoResLoad();
TNoResLoad();
// Disables resource loading. Note that these may be nested.
private:
bool mDisabled;
};